/**
 * @param {number} n
 * @param {number} k
 * @return {number[][]}
 */
var combine = function(n, k) {
    var results=[];
    function dfs(route){
        if(route.length==k){
            results.push([...route]);
            return ;
        }
        let i=route.length>0 ?route[route.length-1]+1:1;
        while(i<=n){
            route.push(i);
            dfs(route);
            route.pop();
            i+=1;
        }
    }
    dfs([]);
    return results;
};

/*
执行用时：
136 ms
, 在所有 JavaScript 提交中击败了
55.02%
的用户
内存消耗：
42.8 MB
, 在所有 JavaScript 提交中击败了
84.35%
的用户
*/